/**
 * @author Daniel Weber
 * Ist der Protagonist des Spiels.
 * Beinhält die Animation, den Befehl sich zu drehen und einige Überprüfungen.
 */
import javax.microedition.lcdui.game.Sprite;

public class GMan extends Sprite{
    private boolean bMirror;//ausrichtung des Sprites
    public boolean bCollide;//frontale Kollision
    public int gravity=-1;

    GMan()
    {
        super(system.img[system.GMan0+system.getRnd(3)],30,30);
        //Mittelpunkt setzen
        defineReferencePixel(getWidth()/2,getHeight()/2);
        setTransform(TRANS_ROT90);
    }

    GMan(int clr)
    {
        super(system.img[system.GMan0+clr],30,30);
        //Mittelpunkt setzen
        defineReferencePixel(getWidth()/2,getHeight()/2);
        setTransform(TRANS_ROT90);
    }

    /**
     * Spiegelt die Figur entlang der x-Achse
     */
    public void switchGravity()
    {
        gravity*=-1;
        move(gravity*2,0);
        if(bMirror){
            setTransform(TRANS_ROT90);
            bMirror=false;
        }
            else{
            setTransform(TRANS_MIRROR_ROT270);
            bMirror=true;
            }
    }

    public boolean isOnScreen()
    {
         return !((getX()+getWidth() <0) || //unten raus
                 (getX() > system.w) || //oben raus
                 (system.getXLayer(this)+system.h/2+getHeight()/2 < level.position));//links raus
    }

    public boolean collidesWithLevel(){
        return(collidesWith(level.oldMapLayer, false)||collidesWith(level.newMapLayer, false));
    }

    public boolean collidesWithSprites(){
        boolean coll=false;
        for(int i = 0;i<Game.gMan.length;i++)
            if(this.collidesWith(Game.gMan[i],false)&&Game.gMan[i]!=this)coll=true;
        return coll;
    }

}
